home *** CD-ROM | disk | FTP | other *** search
/ Speccy ClassiX 1998 / Speccy ClassiX 98.iso / amiga_system / the_aminet / dev / gcc / ixemulsrc.lha / ixemul-41.4 / stack / stkrst_f.c < prev    next >
C/C++ Source or Header  |  1995-05-23  |  466b  |  25 lines

  1. #include <bases.h>
  2.  
  3. asm("
  4.     .text
  5.     .even
  6.     .globl ___stkrst_f
  7.  
  8. ___stkrst_f:
  9.     movel    a2,sp@-
  10.     moveml    #0xc0c2,sp@-        | Preserve all registers
  11.     movel    sp,a2
  12.     lea    "A4(___used_stack)",a1    | Move current stackframe to the spares list
  13.     movel    a1@,a0
  14.     movel    a0@,a1@+
  15.     movel    a1@,a0@
  16.     movel    a0,a1@
  17.     addqw    #4,a0            | Return to old stackframe
  18.     movel    a0@(12:W),"A4(___stk_limit)"
  19.     movel    "A4(_SysBase)",a6
  20.     jsr    a6@(-0x2dc)        | StackSwap(sss:a0)
  21.     moveml    a2@+,#0x4303
  22.     movel    a2@,a2
  23.     rts
  24. ");
  25.